Find the second smallest number in a listΒΆ

Find the second smallest number in a list.
def second_smallest(L):
    if len(numbers) < 2:
        return

    if len(L) == 2 and L[0] == L[1]:
        return

    dup_items = set()
    uniq_items = []

    for x in L:
        if x not in dup_items:
            uniq_items.append(x)
            dup_items.add(x)

    uniq_items.sort()

    return uniq_items[1]

# test
print(second_smallest([1, 2, -8, -2, 0, -2]))         # -2
print(second_smallest([1, 1, 0, 0, 2, -2, -2]))       # 0
print(second_smallest([1, 1, 1, 0, 0, 0, 2, -2, -2])) # 0
print(second_smallest([2,2]))                         # None
print(second_smallest([2]))                           # None